home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / PowerPlant / AGA Classes 1.2 / Windows / LAGADialogBox.cp next >
Text File  |  1996-06-30  |  4KB  |  132 lines

  1. // ===========================================================================
  2. //    LAGADialogBox.cp
  3. // ===========================================================================
  4. //    “Apple Grayscale Appearance” compliant dialog box content
  5. //    Copyright © 1996 Chrisoft (Christophe ANDRES)  All rights reserved.
  6. //
  7. //    You may use this source code in any application (commercial, shareware, freeware,
  8. //    postcardware, etc), but not remove this notice (no need to acknowledge the use of
  9. //    this class in the about box)
  10. //    You may not sell this source code in any form. This source code may be placed on 
  11. //    publicly accessable archive sites and source code disks. It may not be placed on 
  12. //    profit archive sites and source code disks without the permission of the author, 
  13. //    Christophe ANDRES.
  14. //    
  15. //        This source code is distributed in the hope that it will be useful,
  16. //        but WITHOUT ANY WARRANTY; without even the implied warranty of
  17. //        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  18. //
  19. //    If you make any change or improvement on this class, please send the improved/changed
  20. //    version to : chrisoft@calva.net or Christophe ANDRES
  21. //                                     20, rue Prosper Mérimée
  22. //                                     67100 STRASBOURG
  23. //                                     FRANCE
  24. //
  25. // ===========================================================================
  26. //    LAGADialogBox.h            <- double-click + Command-D to see class declaration
  27. //
  28. //    LAGADialogBox is my implementation of the “Apple Grayscale Appearance for System 7.5”
  29. //        dialog box content. This class set the background color to  0xDDDD (color 2) for all
  30. //        three RGB components and uses the LAGADefaultOutline to put an outline arund the
  31. //        default button This default button should be of LAGAPushButton to achieve the desired
  32. //        result.
  33. //
  34. //        This class requires LAGADefaultOutline.cp to be present in your project
  35. //
  36. //        Version : 1.2
  37. //
  38. //        Change History (most recent first, date in US form : mm/dd/yy):
  39. //
  40. //                        06/30/96    ca        Public release of version 1.2
  41. //                        06/05/96    ca        Added RegisterClass method to ease registry
  42. //                                                        Increased version to 1.2
  43. //                                                        Added change history
  44. //                        04/22/96    ca        class made available by Christophe ANDRES <chrisoft@calva.net>
  45. //                                                        (version 1.0)
  46. //
  47. //        To Do:
  48. //
  49.  
  50. #include "LAGADialogBox.h"
  51. #include "LAGADefaultOutline.h"
  52.  
  53. //    begin    <06/05/96    ca>
  54. void LAGADialogBox::RegisterClass ()
  55.  
  56. {
  57.     URegistrar::RegisterClass(LAGADialogBox::class_ID, (ClassCreatorFunc)LAGADialogBox::CreateAGADialogBoxStream);
  58. }
  59. //    end    <06/05/96    ca>
  60.  
  61. LAGADialogBox* LAGADialogBox::CreateAGADialogBoxStream (LStream    *inStream)
  62.  
  63. {
  64.     return (new LAGADialogBox(inStream));
  65. }
  66.  
  67. //-------Constructors-------------------------------------------------------------------------------------------------
  68.  
  69. LAGADialogBox::LAGADialogBox ()
  70.  
  71. {
  72.     InitAGADialogBox();
  73. }
  74.  
  75. LAGADialogBox::LAGADialogBox (LStream *inStream) : LDialogBox(inStream)
  76.  
  77. {
  78.     InitAGADialogBox();
  79. }
  80.  
  81. void LAGADialogBox::InitAGADialogBox ()
  82.  
  83. {
  84.     mBackColor.red = mBackColor.green = mBackColor.blue = 0xDDDD;
  85. }
  86.  
  87. void LAGADialogBox::FinishCreateSelf ()
  88.  
  89. {
  90.     LControl    *theControl;        // Link DialogBox as a Listener to the
  91.                                                         //   Default and Cancel Buttons
  92.     
  93.     theControl = (LControl*) FindPaneByID(mDefaultButtonID);
  94.     if (theControl != nil)
  95.         {
  96.             theControl->AddListener(this);
  97.             mDefaultOutline = new LAGADefaultOutline(theControl);
  98.         }
  99.  
  100.     theControl = (LControl*) FindPaneByID(mCancelButtonID);
  101.     if (theControl != nil)
  102.         {
  103.             theControl->AddListener(this);
  104.         }
  105. }
  106.  
  107. void LAGADialogBox::FindCommandStatus (CommandT inCommand, Boolean &outEnabled, Boolean &outUsesMark,
  108.                                                                                 Char16 &outMark, Str255 outName)
  109. {
  110.     // Don't enable any commands except cmd_About, which will keep
  111.     // the Apple menu enabled. This function purposely does not
  112.     // call the inherited FindCommandStatus, thereby suppressing
  113.     // commands that are handled by SuperCommanders. Only those
  114.     // commands enabled by SubCommanders will be active.
  115.     //
  116.     // This is usually what you want for a movable modal dialog.
  117.     // Commands such as "New", "Open" and "Quit" that are handled
  118.     // by the Application are disabled, but items within the dialog
  119.     // can enable commands. For example, an edit field would enable
  120.     // items in the "Edit" menu.
  121.     
  122.     // Disable all commands.
  123.     outEnabled = false;
  124.     
  125.     if (inCommand == cmd_About)
  126.         {
  127.             // Enable the about command.
  128.             outEnabled = true;
  129.         }
  130. }
  131.  
  132.